#pragma once

namespace CurrentThread
{
    // 声明线程局部变量t_cachedTid存储当前线程TID
    extern __thread int t_cachedTid;

    // 声明cacheTid()函数
    void cacheTid();

    // 实现内联函数tid()，对外提供的接口获取当前线程TID
    inline int tid()
    {
        // 分支预测优化
        if (__builtin_expect(t_cachedTid == 0, 0))
        {
            cacheTid();
        }
        return t_cachedTid;
    }
}